/******************************************************************************
 * @Copyright (C), CVTE Electronics CO.Ltd 2022.
 * @File name:
 * @Author: Zuo Yiming(zuoyiming98@buaa.edu.cn)
 * @Version: V1.0
 * @Date: 2022-10-14 14:06:49
 * @Description:
 * @Others: None
 * @History: <time>   <author>    <version >   <desc>
*******************************************************************************/

#ifndef B_SPLINE_H_
#define B_SPLINE_H_

#include <vector>
#include <iostream>
#include "poi.h"

using namespace std;
typedef std::vector<Pt> Pointlist;

class BSpline {
public:
  BSpline() = default;
  ~BSpline() = default;
  Pointlist GenerateBSplineCurve(const int &order,
                                 const Pointlist &control_pts);

private:
  void CalculateKnots(const int &size);
  vector<float> base_nodes_;
  int order_;
};

#endif
